/**
 * 作者:李杰
 * email: maillijie@gmail.com
 */
package com.javainfo.service;

import java.util.Date;

import com.javainfo.dao.inf.ArticleDaoIf;
import com.javainfo.dao.inf.BaseDaoIf;
import com.javainfo.dao.inf.SubArticleDaoIf;
import com.javainfo.dao.inf.UserDaoIf;
import com.javainfo.entity.Article;
import com.javainfo.entity.SubArticle;
import com.javainfo.entity.User;
import com.javainfo.service.inf.SubArticleServiceIf;
import com.javainfo.simpledto.SubArticleDto;

public class SubArticleService extends BaseService<SubArticle> implements
		SubArticleServiceIf {

	private SubArticleDaoIf subArticleDao;

	private ArticleDaoIf articleDao;
	
	private UserDaoIf userDao;
	
	@Override
	public BaseDaoIf<SubArticle> getBaseDao() {
		return subArticleDao;
	}

	public SubArticleDaoIf getSubArticleDao() {
		return subArticleDao;
	}

	public void setSubArticleDao(SubArticleDaoIf subArticleDao) {
		this.subArticleDao = subArticleDao;
	}

	@Override
	public void update(SubArticle obj) {
		SubArticle _subArticle = subArticleDao.getById(obj.getId());
		_subArticle.setContent(obj.getContent());
		_subArticle.setTitle(obj.getTitle());
		_subArticle.setUser(obj.getUser());
		subArticleDao.update(_subArticle);
	}

	public void saveSubArticle(SubArticleDto subArticleDto) {
		SubArticle subArticle = new SubArticle();
		
		Article article = articleDao.getById(subArticleDto.getArticleId());
		subArticle.setArticle(article);
		User user = userDao.getById(subArticleDto.getUserId());
		subArticle.setUser(user);
		
		subArticle.setContent(subArticleDto.getContent());
		subArticle.setTitle(subArticleDto.getTitle());
		subArticle.setCreateTime(new Date());
		subArticle.setUpdateTime(new Date());

		add(subArticle);
	}

	/**
	 * @return the articleDao
	 */
	public ArticleDaoIf getArticleDao() {
		return articleDao;
	}

	/**
	 * @param articleDao the articleDao to set
	 */
	public void setArticleDao(ArticleDaoIf articleDao) {
		this.articleDao = articleDao;
	}

	/**
	 * @return the userDao
	 */
	public UserDaoIf getUserDao() {
		return userDao;
	}

	/**
	 * @param userDao the userDao to set
	 */
	public void setUserDao(UserDaoIf userDao) {
		this.userDao = userDao;
	}
	
	
}
